KAL: kernel-assisted non-invasive memory leak tolerance with a general-purpose memory allocator
نویسندگان
چکیده
Memory leaks are a continuing problem in software developed with programming languages such as C and C++. A recent approach adopted by some researchers is to tolerate leaks in the software application and to reclaim the leaked memory by use of specially constructed memory allocation routines. However such routines replace the usual general purpose memory allocator and tend to be less efficient in speed and in memory utilization. We propose a new scheme which coexists with the existing memory allocation routines and which reclaims memory leaks. Our scheme identifies and reclaims leaked memory at the kernel level. There are some major advantages to our approach: (1) the application software does not need to be modified; (2) the application does not need to be suspended while leaked memory is reclaimed; (3) a remote host can be used to identify the leaked memory, thus minimizing impact on the application program’s performance; (4) our scheme does not degrade service availability of the application while detecting and reclaiming memory leaks. We have implemented a prototype that works with the GNU C library and with the Linux kernel. Our prototype has been tested and evaluated with various real world applications. Our results show that the computational overhead of our approach is around 2% of that incurred by the conventional memory allocator in terms of throughput
منابع مشابه
Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources
The slab allocator [Bonwick94] provides efficient object caching but has two significant limitations: its global locking doesn’t scale to many CPUs, and the allocator can’t manage resources other than kernel memory. To provide scalability we introduce a per−processor caching scheme called the magazine layer that provides linear scaling to any number of CPUs. To support more general resource all...
متن کاملConcurrent Manipulation of Dynamic Data Structures in OpenCL
With the emergence of general purpose GPU (GPGPU) programming, concurrent data processing of large arrays of data has gained a significant boost in performance. However, due to the memory architecture between the host and GPU device and other limitations in the instructions available on GPUs, the implementation of dynamic data structures, like linked list and trees, is not evident. In GPU progr...
متن کاملThe Slab Allocator: An Object-Caching Kernel Memory Allocator
This paper presents a comprehensive design overview of the SunOS 5.4 kernel memory allocator. This allocator is based on a set of object-caching primitives that reduce the cost of allocating complex objects by retaining their state between uses. These same primitives prove equally effective for managing stateless memory (e.g. data pages and temporary buffers) because they are space-efficient an...
متن کاملA comprehensive study of Dynamic Memory Management in OpenCL kernels
Traditional (sequential) applications use malloc for a variety of dynamic data structures, like linked lists or trees. GPGPU is gaining attention and popularity because its massively-parallel architecture allows for great speed improvement for programs that can be parallelised and implemented for a platform like OpenCL. Programmers who try to port their existing sequential or even parallel prog...
متن کاملنقش ذهن آگاهی، تحمل آشفتگی و حافظه هیجانی در پیش بینی بازگشت و پیروی از درمان در سوء مصرفکنندگان مواد
Objective: The purpose of this study was to determine the role of mindfulness, distress tolerance, and emotional memory in predicting addiction relapse and adherence to treatment in substance abusers. Method: This research is a correlation study. The research population included all the patients referring to substance abuse treatment centers in the first half of 2014. The number of 197 substanc...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Softw., Pract. Exper.
دوره 40 شماره
صفحات -
تاریخ انتشار 2010